#pragma once
#include "pcloud_scans/k_means.h"
#include "pcloud_scans/point.h"
#include <ros/ros.h>
#include <pcl/point_cloud.h>
#include <sensor_msgs/PointCloud2.h>
#include <pcl/point_types.h>
#include <visualization_msgs/Marker.h>
#include <pcloud_scans/base_point_cloud_deal.h>

void lines_accessible_area(Kmeans_class * Last_class, int K_means,int Ground_line,std::vector<pcl::PointCloud<pcl::PointXYZI> >laserCloudScansOrder);
void Accessible_part1(int Ground_line, std::vector<pcl::PointCloud<pcl::PointXYZI> > laserCloudScans);
void LineFitLeastSquares(std::vector<int> index_points, std::vector<std::vector<double> >points, std::vector<double> &return_KB);
double Fit_Circle(std::vector<std::vector<double> >temp_circle_points);
bool intersect(Point A, Point B, Point C, Point D);